3048 LOCATE 7+MR,MC+5:XX1=VAL(X$(M)):XX2=LEN(X$(M)):IF XX2<10 THEN P1$=LEFT$(DUMMY$,10-XX2)+X$(M) ELSE IF XX2>10 THEN P1$=RIGHT$(X$(M),10) ELSE P1$=LEFT$(X$(M),10)
3049 PRINT P1$;:LOCATE 7+MR,MC+16:YY1=VAL(Y$(M)):YY2=LEN(Y$(M)):IF YY2<10 THEN P2$=LEFT$(DUMMY$,10-YY2)+Y$(M) ELSE IF YY2>10 THEN P2$=RIGHT$(Y$(M),10) ELSE P2$=LEFT$(Y$(M),10)
3050 PRINT P2$:MR=MR+1
3052 IF M MOD 14=0 THEN MR=1:MC=MC+26
3053 IF M MOD 42=0 THEN MR=1:MC=1:GOSUB 64000
3054 IF LEFT$(X$(M),1)="S" OR LEFT$(X$(M),1)="s" OR LEFT$(Y$(M),1)="S" OR LEFT$(Y$(M),1)="s" THEN GOTO 3100
3075 IF LP=1 THEN LPRINT"X( ";J;" )= ";X$(J);TAB(40);"Y( ";J;" )= ";Y$(J)
3077 M=M+1:IF MR>14 THEN MR=1:MC=MC+26:IF MC>55 THEN MC=1
3078 IF MR2=1 THEN 3037
3080 NEXT J
3090 GOTO 120
3100 X$(M)="END":Y$(M)="END":LOCATE 25,1:PRINT"(S)top encountered. More Data (Y or N).";:INPUT;A$
3110 IF A$ = "Y" OR A$ = "y" THEN MR=MR-1:LOCATE 25,1:PRINT" ";:GOTO 3040
3120 GOTO 3430
3430 CLS:PRINT "Rearranging Data for Deletions"
3470 K1=1
3480 FOR I= 1 TO 999
3490 X1$(I)=X$(I): Y1$(I)=Y$(I): NEXT I
3540 FOR I= 1 TO 999
3545 IF X1$(I)="DEL" OR Y1$(I)="DEL" THEN 3580
3550 IF X1$(I)<>"DEL" THEN GOSUB 3587
3570 IF X1$(I)="END" THEN X$(K1)="END":Y$(K1)="END": GOTO 3582
3580 NEXT I
3582 FOR I= 1 TO 999: IF X$(I)="END" OR LEFT$(X$(I),1)="S" OR LEFT$(X$(I),1)="s" GOTO 3584
3583 NEXT I
3584 IF QZ=1 THEN RETURN ELSE PRINT "There are now "; I-1;" VALID data points. ":FOR I=1 TO 999:NEXT I:GOTO 3590
4000 CLS:GOSUB 38000: PRINT "CALCULATING SUMS AND SUMS OF SQUARES"
4010 QA=0
4020 GOTO 20000
4040 CLS:GOSUB 38000:IF X$(1)="END" OR Y$(1)="END" THEN PRINT "NO DATA ENTERED, CAN'T SHOW COEFFICIENTS!": PRINT CHR$(7): FOR I=1 TO 1000: NEXT I: GOTO 120
4522 LOCATE 23,7:V=A(MQ):GOSUB 4700:PRINT USING C2$;A(MQ);:LOCATE 23,20:V=B(MQ):GOSUB 4700:PRINT USING C2$;B(MQ);:LOCATE 23,33:V=C(MQ):GOSUB 4700:PRINT USING C2$;C(MQ);
4523 LOCATE 23,46:PRINT USING C1$;RR(MQ);:LOCATE 23,53:PRINT USING C1$;RC(MQ);:LOCATE 23,60:PRINT EQ$(MQ);
4524 MR=6:
4526 FOR I=1 TO 16
4528 LOCATE MR,2:PRINT USING C3$;I;:LOCATE MR,7:V=A(I):GOSUB 4700:PRINT USING C2$;A(I):LOCATE MR,20:V=B(I):GOSUB 4700:PRINT USING C2$;B(I)::LOCATE MR,33:V=C(I):GOSUB 4700:PRINT USING C2$;C(I);
4529 LOCATE MR,46:PRINT USING C1$;RR(I);:LOCATE MR,53:PRINT USING C1$;RC(I);:LOCATE MR,60:PRINT EQ$(I);
4530 MR=MR+1
4531 NEXT I
4532 LOCATE 25,1:INPUT;"PRESS <ENTER> TO SEE THE REMAINING EQUATION COEFFICIENTS";AA$
4544 LOCATE MR,2:PRINT USING C3$;I;:LOCATE MR,7:V=A(I):GOSUB 4700:PRINT USING C2$;A(I);:LOCATE MR,20:V=B(I):GOSUB 4700:PRINT USING C2$;B(I);:LOCATE MR,33:V=C(I):GOSUB 4700:PRINT USING C2$;C(I);:LOCATE MR,46:PRINT USING C1$;RR(I);
4545 LOCATE MR,53:PRINT USING C1$;RC(I);:LOCATE MR,60:PRINT EQ$(I);
4546 MR=MR+1:NEXT I
4548 LOCATE 25,1:INPUT;"ALL EQUATIONS HAVE BEEN LISTED. PRESS <ENTER> TO RETURN TO MAIN MENU ";AAA$
4550 IF LP=1 THEN 4574 ELSE 120
4574 LPRINT A5$:FOR I=1 TO 25:iF A(I)=0 AND B(I)=0 THEN 4588
4605 IF LP=1 THEN LPRINT"BASED ON THE VALUE OF RC( )--BEST FITTING CURVE WAS NUMBER";MQ
4610 LOCATE 25,1:INPUT "PRESS <ENTER> to return to MAIN MENU ";A$:CLS:GOSUB 38000
4620 IF LP=1 THEN LPRINT CHR$(12)
4630 GOTO 120
4700 IF V>9999999.9999# OR V<-999999.9999# OR ABS(V)<.0001 THEN C2$="##.#####^^^^" ELSE C2$="#######.####"
4701 IF V=0 THEN C2$="#######.####"
4702 RETURN
4710 IF ABS(V)<9999.9999# OR V=0 THEN C2$="#####.####":GOTO 4750
4711 IF ABS(V)<999999.99# THEN C2$="#######.##":GOTO 4750
4712 IF ABS(V)<99999999# THEN C2$="##########"
4750 RETURN
4990 CLS:GOSUB 38000:AZ$=""
5000 K=0:L=0:IF AZ$="S" THEN INPUT "All data entered, press <Enter> to continue";A$
5002 AZ$="":Q1$="":Q1A$="":PF$="":PF1$="":CLS:GOSUB 38000:PRINT"RESIDUAL Values of Y, Given EQ#. ":K=1
5003 CLOSE:LOCATE 25,1:INPUT "Quit and return to main menu or Continue (Q or C) DEFAULT = Continue ";AZ$:CLS:GOSUB 38000
5004 CLS:GOSUB 38000:IF L=1 AND LP=1 THEN LPRINT CHR$(12)
5005 IF LEFT$(AZ$,1)="q" OR LEFT$(AZ$,1)="Q" THEN 120
5006 INPUT "Output results to printer (Y or N) DEFAULT =N";Q1$:INPUT "Output Residuals to a File (Y) or (N) DEFAULT = N";Q1A$:IF LEFT$(Q1A$,1)="Y" OR LEFT$(Q1A$,1)="y" THEN GOTO 57000
5033 LOCATE 2,34:PRINT" ";:LOCATE 2,34:PRINT EQ;:IF EQ<0 OR EQ>25 THEN 5038 ELSE IF A(EQ)=0 AND B(EQ)=0 THEN 5043 ELSE LOCATE 2,41:PRINT " ";:LOCATE 2,41:PRINT EQ$(EQ);
5038 IF EQ<0 OR EQ>25 THEN LOCATE 2,41:PRINT" ";:LOCATE 2,41:PRINT "EQUATION";EQ;" IS UNDEFINED ";:GOTO 5032
5039 GOTO 5053
5043 LOCATE 2,41:PRINT " A AND B = ZERO FOR EQ ";EQ;:GOTO 5032
5053 IF LP=1 THEN LPRINT"RESIDUALS FOR EQUATION ";EQ$(EQ):LPRINT" ":lPRINT"X-VALUE","Y-VALUE","P'DICT VALUE","RESIDUAL","CU-SUM RESID DATA #"
5054 LOCATE 23,21:V=A(EQ):GOSUB 4700:PRINT USING C2$;A(EQ);:LOCATE 23,38:V=B(EQ):GOSUB 4700:PRINT USING C2$;B(EQ);:LOCATE 23,55:V=C(EQ):GOSUB 4700:PRINT USING C2$;C(EQ);:LOCATE 23,73:PRINT USING"#.####";RC(EQ);
5503 IF LEFT$(Q1A$,1)="Y" OR LEFT$(Q1A$,1)="y" THEN PRINT #1, X(I), Y(I), Y, YR
5505 LOCATE 5+MR,2:V=X(I):GOSUB 4700:PRINT USING C2$;X(I);:LOCATE 5+MR,15:V=Y(I):GOSUB 4700:PRINT USING C2$;Y(I);:LOCATE 5+MR,28:
5506 V=Y:GOSUB 4700:PRINT USING C2$;Y;:V=YR:LOCATE 5+MR,41:GOSUB 4700:PRINT USING C2$;YR;:LOCATE 5+MR,55:V=YRS:GOSUB 4700:PRINT USING C2$;YRS:LOCATE 5+MR,74:PRINT USING "####";I;
5507 IF LP=1 THEN V=X(I):GOSUB 4700:LPRINT USING C2$;X(I);:LPRINT TAB(15);:V=Y(I):GOSUB 4700:LPRINT USING C2$;Y(I);:LPRINT TAB(28);
5508 IF LP=1 THEN V=Y:GOSUB 4700:LPRINT USING C2$;Y;:V=YR:LPRINT TAB(41);:GOSUB 4700:LPRINT USING C2$;YR;:LPRINT TAB(55);:V=YRS:GOSUB 4700:LPRINT USING C2$;YRS;:LPRINT TAB(75);USING "####";I
5509 MR=MR+1:M=M+1:IF MR MOD 17=0 THEN MR=1:GOSUB 5600
5511 IF LP=1 THEN 5515
5515 IF LP=1 AND (INT(M/60)=(M/60)) THEN LPRINT CHR$(12)
5520 RETURN
5600 LOCATE 25,1:PRINT" <ESC> TO MAIN MENU; <ENTER> FOR MORE DATA";:A$=INKEY$
5601 IF A$=CHR$(27) THEN 120 ELSE IF A$=CHR$(13) THEN 5602 ELSE 5600
5602 LOCATE 25,1:PRINT" ";
5603 FOR I3=1 TO 16:LOCATE 5+I3,2:PRINT" ";:LOCATE 5+I3,15:PRINT" ";:LOCATE 5+I3,28:PRINT" ";:LOCATE 5+I3,41:PRINT" ";:LOCATE 5+I3,55:PRINT" ";:LOCATE 5+I3,74:PRINT" ";:NEXT I3
5620 RETURN
6000 REM * STORE DATA ON DISK (RAW DATA ONLY) *
6030 CLS:PRINT "This routine will store RAW DATA on Disk"
6035 ON ERROR GOTO 63000
6040 INPUT "Please enter File Name for Data Storage ";A4$
6050 OPEN "O",1,A4$
6060 FOR I=1 TO 999
6065 IF X$(I)="END" AND Y$(I)="END" THEN CLOSE 1:GOTO 6080
6070 PRINT #1,X$(I),Y$(I):NEXT I:CLOSE 1
6080 PRINT "Data have been stored to disk with File Name ";A4$
6090 INPUT "Press <Enter> to return to MAIN MENU";Z0
6100 GOTO 120
7000 REM * LOAD DATA FROM DISK *
7030 CLS:PRINT"This routine will load DATA from Disk"
7035 ON ERROR GOTO 61000
7036 path$="":INPUT "PLEASE ENTER PATH NAME FOR DATA FILES <ENTER ASSUMES DEFAULT> ";PATH$
7037 CLS: FILES PATH$+"*.*"
7040 INPUT "PLEASE Enter File Name for Data ";A4$
7041 FOR I=1 TO 999:X$(I)="END":Y$(I)="END":NEXT I
7045 NX=0:NY=0:FOR I=1 TO 25:A(I)=0:B(I)=0:C(I)=0:R(I)=0:RC(I)=0:NEXT I
7046 A4$=PATH$+A4$
7050 OPEN "I",1,A4$
7060 FOR I=1 TO 999
7065 IF EOF(1) THEN PRINT"ALL DATA LOADED":K=I:FOR J=K TO 999:X$(J)="END":Y$(J)="END":NEXT J:GOTO 7075
7070 INPUT #1,X$(I)
7071 IF INSTR(2,X$(I)," ")<>0 THEN 7200
7073 INPUT #1,Y$(I):NEXT I
7075 CLOSE 1
7080 PRINT "Data loaded from file ";A4$
7082 FOR I=1 TO 999:IF X$(I)="" THEN X$(I)="DEL":Y$(I)="DEL"
7083 IF X$(I)="END" THEN IF X$(1)<>"DEL" THEN 7090 ELSE DE=1:GOTO 3430
7084 NEXT I:DE=1:GOTO 3430
7090 INPUT "Press ENTER to Continue";A9:GOTO 3430
7100 GOTO 120
7200 CLOSE 1:OPEN "I",1,A4$
7210 FOR I=1 TO 999
7220 IF EOF(1) THEN PRINT"ALL DATA LOADED":K=I:FOR J=K TO 999:X$(J)="END":Y$(J)="END":NEXT J:GOTO 7275
7230 INPUT #1,DUMM$
7240 PM=INSTR(2,DUMM$," "):X$(I)=LEFT$(DUMM$,PM):Y$(I)=RIGHT$(DUMM$,LEN(DUMM$)-PM):NEXT I
7275 GOTO 7075
8000 CLS:GOSUB 38000:PRINT"PROGRAM EXECUTION HAS BEEN TERMINATED"
8010 INPUT "Before exiting do you wish to store data on disk (Y or N)";A$
8020 IF LEFT$(A$,1)="N" OR LEFT$(A$,1)="n" THEN END
8030 GOTO 6030
9000 REM * LIST RAW DATA *
9005 CLS:GOSUB 38000:PRINT "LIST OF DATA ENTERED"
9006 INPUT "Do you want to list data on printer (Y or N)";Q1$
9007 GOSUB 50000:GOTO 63700
9008 IF LP=1 THEN LPRINT"LISTING OF DATA":LPRINT" "
9009 IF LP=0 THEN 9100
9010 FOR I=1 TO 999
9020 IF X$(I)="END" OR Y$(I)="END" THEN LPRINT CHR$(12):GOTO 9100
9065 IF LP=1 THEN LPRINT"X( ";I;" )= ";X$(I);TAB(32);"Y( ";I;" )= ";Y$(I)
9066 IF LP=1 AND (INT(I/60)=(I/60)) THEN LPRINT CHR$(12)
14958 IF RR(I)<0 OR RR(I)>1.01 THEN A(I)=0:B(I)=0:RC(I)=0:C(I)=0:RR(I)=0
14960 IF RC(I)<0 OR RC(I)>1.01 THEN RC(I)=0
14970 NEXT I
14972 GOTO 4040
$SEGMENT
15002 AZ$="":Q1$="":Q1A$="":PF$="":PF1$="":CLS:GOSUB 38000:PRINT"Predicted Value of X, Given Value for Y. ":K=1
15003 CLOSE:LOCATE 25,1:INPUT "Quit and return to main menu or Predict (Q or P) DEFAULT = (P)redict ";AZ$:CLS:GOSUB 38000
15004 CLS:GOSUB 38000:IF L=1 AND LP=1 THEN LPRINT CHR$(12)
15005 IF LEFT$(AZ$,1)="q" OR LEFT$(AZ$,1)="Q" THEN 120
15006 INPUT "Output results to printer (Y or N) ";Q1$:INPUT "Output Predictions to a File (Y) or (N) ";Q1A$:IF LEFT$(Q1A$,1)="Y" OR LEFT$(Q1A$,1)="y" THEN GOTO 58000
15033 LOCATE 2,34:PRINT" ";:LOCATE 2,34:PRINT EQ;:IF EQ<0 OR EQ>25 THEN 15038 ELSE IF A(EQ)=0 AND B(EQ)=0 THEN 15043 ELSE LOCATE 2,41:PRINT " ";:LOCATE 2,41:PRINT EQ$(EQ);
15607 MR1=MR1+1:IF I3 MOD 14=0 THEN MR1=1:MC1=MC1+26
15608 IF I3 MOD 42 =0 THEN MR1=1:MC1=1
15610 NEXT I3
15620 RETURN
20000 REM * CALCULATE SUMS AND SUMS OF SQUARES *
20010 NX=0:NY=0
20040 FOR I=16 TO 65: R(I)=0: NEXT I
20041 Q9=0:QA=1:GOTO 3430
20045 FOR I=1 TO 999
20046 CLS:GOSUB 38000:PRINT"PROCESSING DATA POINT # "; I
20047 IF X$(1)="END" OR Y$(1)="END" THEN PRINT "NO DATA HAS BEEN ENTERED":PRINT"RETURNING TO MAIN MENU":FOR I1=1 TO 1000:NEXT I1:GOTO 120
20055 IF X$(I)= "END" OR Y$(I)="END" OR X$(I)="DEL" OR Y$(I)="DEL" GOTO 30000
20060 X(I)=CDBL(VAL(X$(I))):Y(I)=CDBL(VAL(Y$(I)))
20065 IF X(I)<0 THEN NX=1
20066 IF Y(I)<0 THEN NY=1
20067 IF X(I)=0 THEN X(I)=.0001
20068 IF Y(I)=0 THEN Y(I)=.0001
20070 R(16)=R(16)+X(I)
20080 R(17)=R(17)+X(I)*X(I)
20090 R(18)=R(18)+Y(I)
20100 R(19)=R(19)+Y(I)*Y(I)
20110 R(20)=R(20)+X(I)*Y(I)
20120 R(21)=I
20130 R(22)=R(22)+(1/X(I))
20140 R(23)=R(23)+(1/(X(I)*X(I)))
20150 R(24)=R(24)+(1/(Y(I)))
20160 R(25)=R(25)+(1/(Y(I)*Y(I)))
20170 R(26)=R(26)+(1/(Y(I)*X(I)))
20180 R(27)=I
20190 IF NX<>1 THEN R(28)=R(28)+LOG(X(I))
20200 IF NX<>1 THEN R(29)=R(29)+(LOG(X(I)))*(LOG(X(I)))
20210 IF NY <>1 THEN R(30)=R(30)+(LOG(Y(I)))
20220 IF NY<>1 THEN R(31)=R(31)+(LOG(Y(I)))*(LOG(Y(I)))
20230 IF NX<>1 AND NY<>1 THEN R(32)=R(32)+(LOG(X(I)))*(LOG(Y(I)))
20240 R(33)=I
20250 R(34)=R(34)+(X(I)/Y(I))
20260 R(35)=R(35)+(Y(I)/X(I))
20270 R(36)=R(36)+((X(I)*X(I)))*Y(I)
20280 R(37)=R(37)+((X(I)*X(I)))/Y(I)
20290 R(38)=R(38)+(Y(I)/(X(I)*X(I)))
20300 R(39)=R(39)+X(I)*(Y(I)*Y(I))
20310 R(40)=R(40)+(X(I)*X(I)*X(I))
20320 R(41)=R(41)+1/((X(I)*X(I)*X(I)))
20330 R(42)=R(42)+(Y(I)*Y(I)*Y(I))
20340 R(43)=R(43)+(X(I)*X(I)*X(I)*X(I))
20350 R(44)=R(44)+1/((X(I)*X(I)*X(I)*X(I)))
20360 IF NX<>1 THEN R(45)=R(45)+LOG(X(I))/X(I)
20370 IF NY<>1 THEN R(46)=R(46)+X(I)*LOG(Y(I))
20380 IF NY<>1 THEN R(47)=R(47)+LOG(Y(I))/X(I)
20390 IF NX<>1 THEN R(48)=R(48)+X(I)*LOG(X(I))
20400 IF NX<>1 THEN R(49)=R(49)+(X(I)*LOG(X(I)))*(X(I)*LOG(X(I)))
20410 IF NX<>1 AND NY<>1 THEN R(50)=R(50)+X(I)*LOG(X(I))*LOG(Y(I))
20420 IF NX<>1 THEN R(51)=R(51)+Y(I)*LOG(X(I))
20430 IF NX<>1 THEN R(52)=R(52)+LOG(X(I))/Y(I)
20440 IF NX<>1 THEN R(53)=R(53)+((LOG(X(I))/X(I)))*((LOG(X(I))/X(I)))
20450 IF NY<>1 THEN R(54)=R(54)+(X(I)*X(I))*LOG(Y(I))
20460 IF NX<>1 THEN R(55)=R(55)+((LOG(X(I))*LOG(X(I))*LOG(X(I))))
20470 IF NX<>1 THEN R(56)=R(56)+((LOG(X(I))*LOG(X(I))*LOG(X(I))*LOG(X(I))))
20480 IF NX<>1 AND NY<>1 THEN R(57)=R(57)+((LOG(X(I))*LOG(X(I))))*LOG(Y(I))
20490 IF NX<>1 AND NY<>1 THEN R(58)=R(58)+(LOG(Y(I))*LOG(X(I)))/X(I)
20500 IF X(I)>=1 THEN Q9=1: GOTO 20540
20501 IF Q9=1 GOTO 20540
20502 IF X(I)<=0 THEN 20550
20505 R(59)=R(59)+LOG(1-X(I))
20510 R(60)=R(60)+(LOG(1-X(I)))*(LOG(1-X(I)))
20520 R(61)=R(61)+LOG(X(I))*LOG(1-X(I))
20530 IF NY<>1 THEN R(62)=R(62)+LOG(Y(I))*LOG(1-X(I))
20540 IF NX<>1 THEN R(63)=R(63)+(LOG(X(I)))/X(I)
20550 NEXT I
20600 NX=0:NY=0
30000 REM * END OF SUMMATION LOOP *
30030 CLS:GOSUB 38000: PRINT"SUMS HAVE BEEN CALCULATED--NOW CALCULATING COEFFICIENTS": GOTO 12000
36000 CLS:REM This routine selects Color or Monochrome Monitor
36005 PRINT TAB(20);"CURVEFIT Version 2.25a MAY 09, 1992":PRINT" "
36010 PRINT"This routine allows the selection of Color or Monochrome monitors."
36020 PRINT" ":PRINT"For most cases, the COLOR choice will be correct. This choice will work with"
36030 PRINT"CGA, EGA, and Hercules compatible cards. Select the MONOCHROME version"
36040 PRINT"only if the COLOR choice does not work."
36045 PRINT" ":PRINT"MONOCHROME should work with ANY monitor. With a color monitor, the"
36046 PRINT"choice of MONOCHROME will yield white text on a black background.":PRINT" "
36047 PRINT" ":PRINT"When COLOR choice is used for MONOCHROME monitor, display is HIGH INTENSITY."
36048 PRINT" ":PRINT"To use low intensity on MONOCHROME monitor, choose MONOCHROME monitor."
36050 PRINT" ":PRINT "Please press <C> or <ENTER> for COLOR. Press <M> for MONOCHROME. "
36060 PRINT" ":MONITOR$="C"
36061 MONITOR1$=INKEY$:IF MONITOR1$="m" OR MONITOR1$="M" OR MONITOR1$="C" OR MONITOR1$="c" OR MONITOR1$=CHR$(13) THEN 36110 ELSE 36061
36110 IF MONITOR1$="C" OR MONITOR1$="c" OR MONITOR1$=CHR$(13) THEN PRINT"You have chosen COLOR monitor":PRINT" ":MONITOR$="C":INPUT"Press <Enter> to Continue";CT$:IF MONITOR2$="Y" THEN MONITOR2$="N":GOTO 10
36115 IF MONITOR1$="C" OR MONITOR1$="C" OR MONITOR1$=CHR$(13) THEN 115
36120 IF MONITOR1$="M" OR MONITOR1$="m" THEN PRINT"You have chosen MONOCHROME monitor":PRINT" ":MONITOR$="M":INPUT"Press <Enter> to Continue";CT$:IF MONITOR2$="Y" THEN MONITOR2$="N":GOTO 10
42000 CLS:GOSUB 38000:IF A(1)=0 AND B(1)=0 THEN PRINT"COEFFICIENTS MUST BE CALCULATED BEFORE USING THIS ROUTINE!":PRINT" ":INPUT"PLEASE PRESS <ENTER> TO RETURN TO MAIN MENU";RMM$:GOTO 120
42010 FOR I=1 TO 25:RS$(I)=STR$(RC(I))+"_"+STR$(I):NEXT I
42015 REM SHELL-METZNER SORT
42020 MX=25
42025 M1=MX
42030 M1=M1\2:IF M1=0 THEN 43000
42040 K1=MX-M1:J1=1
42050 I1=J1
42060 L1=I1+M1
42070 IF RS$(I1)<=RS$(L1) THEN J1=J1+1:IF J1>K1 THEN 42030 ELSE 42050
42080 SWAP RS$(I1),RS$(L1):I1=I1-M1:IF I1>0 THEN 42060
42090 J1=J1+1:IF J1>K1 THEN 42030 ELSE 42050
43000 '
43310 '
43320 K2=25:FOR I=1 TO 25:RS1$(I)=RS$(K2):K2=K2-1:NEXT I
43330 FOR I=1 TO 25:RS$(I)=RS1$(I):NEXT I
43340 FOR I=1 TO 25:P1=INSTR(RS$(I),"_"):RS(I)=VAL(MID$(RS$(I),P1+2,LEN(RS$(I)))):NEXT I
43528 LOCATE MR,2:PRINT USING C3$;RS(I);:LOCATE MR,7:V=A(RS(I)):GOSUB 4700:PRINT USING C2$;A(RS(I)):LOCATE MR,20:V=B(RS(I)):GOSUB 4700:PRINT USING C2$;B(RS(I));:LOCATE MR,33:V=C(RS(I)):GOSUB 4700:PRINT USING C2$;C(RS(I));
43529 LOCATE MR,46:PRINT USING C1$;RR(RS(I));:LOCATE MR,53:PRINT USING C1$;RC(RS(I));:LOCATE MR,60:PRINT EQ$(RS(I));
43530 MR=MR+1:IF MR=24 THEN 43532
43531 NEXT I
43532 LOCATE 25,1:INPUT"PLEASE PRESS <ENTER> TO RETURN TO MAIN MENU";RMM$:GOTO 120
50000 IF LEFT$(Q1$,1)="Y" OR LEFT$(Q1$,1)="y" THEN LP=1 ELSE LP=0